﻿using DevExpress.XtraGrid.Demos.util;
using DiaoPaiDaYin;
using DXApplicationTangche.DTO;
using DXApplicationTangche.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DXApplicationTangche.model
{
    public class 款式配置设计点数据清洗Model
    {
        public List<DTO款式配置设计点数据清洗> designPointDataCleanDTOs = new List<DTO款式配置设计点数据清洗>();
        public List<DTO旧的款式设计点id> oldDesignPointIdDTOs = new List<DTO旧的款式设计点id>();
        public 款式配置设计点数据清洗Model(List<DTO款式配置设计点展现> DTO款式配置设计点展现s)
        {
            DTO款式配置设计点展现s.Sort(new CComparer());
            //DTO款式配置设计点展现s.Sort((left, right) =>
            //{
            //    if (!left.P_ITEM_VALUE.Equals(right.P_ITEM_VALUE))
            //        return 0;
            //    else if (left.P_ITEM_VALUE.Equals(right.P_ITEM_VALUE))
            //        return 1;
            //    else
            //        return -1;
            //});
            String str = FunctionHelper.JsonSerialization(DTO款式配置设计点展现s);
            String P_ITEM_VALUE = "";
            DTO款式配置设计点数据清洗 DTO款式配置设计点数据清洗 = null;
            int i = 1;
            foreach (DTO款式配置设计点展现 DTO款式配置设计点展现 in DTO款式配置设计点展现s)
            {
                if (!P_ITEM_VALUE.Equals(DTO款式配置设计点展现.P_ITEM_VALUE))//新的第一个
                {
                    if (DTO款式配置设计点数据清洗 != null)
                    {
                        this.designPointDataCleanDTOs.Add(DTO款式配置设计点数据清洗);
                        DTO款式配置设计点数据清洗 = null;
                    }
                    DTO款式配置设计点数据清洗 = new DTO款式配置设计点数据清洗(DTO款式配置设计点展现);

                }
                else//第二个
                {
                    //  ADD
                    DTO款式配置设计点数据清洗.build设计点明细(DTO款式配置设计点展现);

                }
                //  新的大分组
                if (i== DTO款式配置设计点展现s.Count)
                {
                    this.designPointDataCleanDTOs.Add(DTO款式配置设计点数据清洗);
                }
                P_ITEM_VALUE = DTO款式配置设计点展现.P_ITEM_VALUE;
                i++;
                if(P_ITEM_VALUE==null)
                {
                    P_ITEM_VALUE = "";
                }
            }
        }
        
        /// <summary>
        /// 旧的id删除用
        /// </summary>
        /// <param name="设计点图片Dtos"></param>
        /// <returns></returns>
        public 款式配置设计点数据清洗Model buildOldId(List<DTO款式配置设计点展现> 设计点图片Dtos)
        {
            this.oldDesignPointIdDTOs.Clear();
            foreach (DTO款式配置设计点展现 dTO in 设计点图片Dtos)
            {
                this.oldDesignPointIdDTOs.Add(new DTO旧的款式设计点id(dTO));
            }
            return this;
        }
    }

    public class CComparer : IComparer<DTO款式配置设计点展现>
    {
        public int Compare(DTO款式配置设计点展现 left, DTO款式配置设计点展现 right)
        {
            ////if (!left.P_ITEM_VALUE.Equals(right.P_ITEM_VALUE))
            //if (left.P_ITEM_VALUE != right.P_ITEM_VALUE)
            //    return 1;
            ////else if (left.P_ITEM_VALUE.Equals(right.P_ITEM_VALUE))
            //else if (left.P_ITEM_VALUE == right.P_ITEM_VALUE)
            //    return 0;
            //else
            //    return -1;
            return left.P_ITEM_VALUE.CompareTo(right.P_ITEM_VALUE);
        }
    }
}
